package com.epalmpay.service.weixin;

import com.epalmpay.exception.ApplicationException;
import com.epalmpay.payplat.result.PayCrcodeCallback;

import java.util.Map;


/**
 * Created by wzq on 2017/7/2.
 */
public interface IWxApiService {
	//查询优惠券列表
	public Map<String, Object> getCouponCanGetList(String groupId,String openId, String memberId) throws Exception;
	
	//查询签到列表
	public Map<String, Object> memberSignList(String groupId, String memberId)throws Exception;
	


	public Map<String, Object> insertMemberSign(Long memberId) throws Exception;
	
	//查询 是否有签到权限以及今日是否签到 
	public Integer querytodaymemberSign(Long memberId,Long groupId)throws Exception;
	
	//已领取红包列表
	public Map<String, Object> getRedpackList(String groupId, String openId, String memberId)throws Exception;
	//红报可领取列表
	public Map<String, Object> getRedpackCanGetList(String groupId, String openId, String memberId)throws Exception;
	
	//领取优惠卷详情
	public Map<String, Object> couponCanGetDetail(String memberId, String couponId)throws Exception;
	//领取优惠卷
	public int insertCouponUser(String memberId, String couponId)throws Exception;
	//活动列表
	public Map<String, Object> getActivityList(String groupId)throws Exception;
	//活动详情
	public Map<String, Object> activityDetail(String activityId)throws Exception;
	//已领取优惠卷列表
//	public Map<String, Object> queryCouponHaveGottenList(String memberId,Integer amount,String memberPhone)throws Exception;
	public Map<String, Object> queryCouponHaveGottenList(String memberId,Integer amount)throws Exception;
	//已使用优惠卷列表
	public Map<String, Object> queryCouponhaveusedlist(String memberId)throws Exception;
	//门店商品订单列表
	public Map<String, Object> queryShopGoodOrderList(String openId, String memberId, String orderStatus, Integer pageNo,
													  Integer pageSize)throws Exception;
	//订单详情
	public Map<String, Object> queryOrderDetail(String memberId, String orderId)throws Exception;
	//取消订单
	public int updateOrderStatus(String memberId, String orderId,String masterUrl)throws Exception;
	//用电话号码查姓名
	public Map<String, Object> getNameByPhone(String phone,String groupId)throws Exception;
	//修改登入密码
	public Boolean updatePassword(String memberId, String newPassword,String oldPassword)throws ApplicationException;
	//修改支付密码
	public Boolean updateTradePassword(String memberId, String newPassword,String oldPassword)throws ApplicationException;
	public Boolean updatetradePassword(String memberId,  String password)throws ApplicationException;

	//修改第一次支付密码
	public Boolean updateTradePasswordOne(String memberId, String newPassword)throws ApplicationException;
	
	public Map<String, Object> findCategory(String groupId, String level,Integer goodBigtype)throws Exception;
	//我的邀请福利列表
	public Map<String, Object> myInvitewelfareList(String memberId, String date,Integer pageNo,Integer pageSize)throws ApplicationException;
	//分享邀请查询
	public Map<String, Object> shareInviteQuery(String memberId)throws Exception;
	//订单退款
	public Map<String, Object> orderRefund(String memberId, String orderId) throws Exception;

	//会员激活钱包
	public Map<String, Object> updateloginWallet(String memberId,String phone,String loginPassword,String payPassword,
			String certName,String certNum,String rootHomeUrl,String birthday, String sex)throws ApplicationException;
	
	//根据会员id会员专属生成二维码信息
	public Map<String, Object> updateMembercrcode(String memberId)throws Exception;
	
	public Map<String, Object> queryPaycrcode(String memberId,String temporary,String logoPath,String NotifyUrl)throws ApplicationException;
	
	public Map<String, Object> queryPayCallback(PayCrcodeCallback payCrcodeCallback)throws ApplicationException;
	
	public Map<String, Object> queryPayPolling(String memberId,String marked)throws ApplicationException;
	
	public Map<String, Object> queryCodeSuccessDetails(String orderNum)throws ApplicationException;
	
	public  Map<String, Object> queryPaycrcode(String memberId,String NotifyUrl)throws ApplicationException;
	//重置登入密码
	public Boolean passwordUpdate(String memberId, String password)throws ApplicationException;

	public Map<String, Object> queryWxInfo(String memberId) throws Exception;

	public Map<String, Object> queryRedpackageUser(String memberId, String redpackageId) throws Exception;


	public Boolean updateTransOrgOrderNum(String qrCode, String orgOrderNum,String rootHomeUrl);

	public Boolean tradePasswordUpdate(String memberId,  String password) throws ApplicationException;

    Map<String,Object> queryMemberId(String shopId, String phone)throws ApplicationException;
}
